﻿#include <iostream>
using namespace std;

//class ListNode
//{
//public:
//	ListNode(int x)
//		:_next(nullptr)
//		,_val(x)
//	{}
//private:
//	ListNode* _next;
//	int _val;
//};
//int main()
//{
//	//C语言
//	int* p1 = (int*)malloc(sizeof(int) * 10);
//	free(p1);
//
//	//C++
//	int* p2 = new int;
//	delete p2;
//	int* p3 = new int[10];
//	delete[] p3;
//	int* p4 = new int(10);
//
//	ListNode* s1 = new ListNode(1);
//	ListNode* s2 = new ListNode(2);
//	ListNode* s3 = new ListNode(3);
//	return 0;
//
//}

//class A
//{
//public:
//	A(int a = 0)
//		:_a(a)
//	{
//		cout << "A(int a = 0)" << endl;
//	}
//
//	A(const A& a1)
//		:_a(a1._a)
//	{
//		cout << "A(const A&)" << endl;
//	}
//
//	~A()
//	{
//		cout << "~A()" << endl;
//	}
//private:
//	int _a;
//};
//
//int main()
//{
//	A* p1 = new A[10]{ 1,2,3,4 };
//	delete[] p1;
//
//	int* p2 = (int*)operator new(sizeof(int) * 10);
//	operator delete(p2);
//	return 0;
//}

//int main()
//{
//	int* p1 = nullptr;
//	try//抛出异常的捕获
//	{
//		do
//		{
//			//p1 = (int*)malloc(1024 * 1024);
//			p1 = new int[1024 * 1024];
//			cout << p1 << endl;
//		} while (p1);
//	}
//	catch (const exception& e)
//	{
//		cout << e.what() << endl;
//	}
//
//	return 0;
//}